<?php

/**
 * UserIdentity represents the data needed to identity a user.
 * It contains the authentication method that checks if the provided
 * data can identity the user.
 */
class UserIdentity extends CUserIdentity
{
	/**
	 * Authenticates a user.
	 * The example implementation makes sure if the username and password
	 * are both 'demo'.
	 * In practical applications, this should be changed to authenticate
	 * against some persistent user identity storage (e.g. database).
	 * @return boolean whether authentication succeeds.
	 */
        private $_userID;
       
        public function authenticate()
	{
		
            
            
       $userLogin = Users::model()->findByAttributes(array(
           'USERNAME'=>$this->username,
           'LOCKED'=>'N',
               ));

             //  var_dump($this->password); 
               
            
        if($userLogin === NULL){
            $this->errorCode = self::ERROR_USERNAME_INVALID;
        }else if($userLogin->USER_PASSWORD != md5($this->password)) {
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        } else {
            $this->errorCode=self::ERROR_NONE;
            $this->setState('role',$userLogin->USER_LEVEL);
            $this->_userID = $userLogin->PERSONAL_ID;
            
            
       $criteria = new CDbCriteria();
       $criteria->select = 'ID,
                              PERSONAL_NAME,
                              PERSONAL_IMAGES                             
                              ';
            
            $criteria->condition = 't.ID =:PersonalID';
            $criteria->params = array(
                ':PersonalID' => (int) $userLogin->PERSONAL_ID,
            );

           $persernalProfile = Personal::model()->find($criteria);
             
                Yii::app()->session["personalID"] = $userLogin->PERSONAL_ID;    
                Yii::app()->session["personalName"] = $empProfile->PERSONAL_NAME;  
                Yii::app()->session["personalPicture"] = $empProfile->PERSONAL_IMAGES; 
                Yii::app()->session["user_level"] = $UserLogin->USER_LEVEL;

        }   
            
            
         return !$this->errorCode;   
            
            

	}
        
        public function getID(){
            return $this->_userID;
            
        }
}